﻿using System;
using System.Collections.Generic;
using SharpSqlAnalyzer.nodes.hive;
using SharpSqlAnalyzer.nodes.mssql;
using SharpSqlAnalyzer.nodes.teradata;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000349 RID: 841
	public class TSelectSqlNode : TParseTreeNode
	{
		// Token: 0x06002264 RID: 8804 RVA: 0x00335222 File Offset: 0x00333422
		public void setWindowClause(TWindowClause wc)
		{
			this.windowClause = wc;
		}

		// Token: 0x06002265 RID: 8805 RVA: 0x0033522B File Offset: 0x0033342B
		public void setLimitClause(TLimitClause c)
		{
			this.limitClause = c;
		}

		// Token: 0x06002266 RID: 8806 RVA: 0x00335234 File Offset: 0x00333434
		public void setLockingClauses(List<TLockingClause> lc)
		{
			this.lockingClauses = lc;
		}

		// Token: 0x06002267 RID: 8807 RVA: 0x0033523D File Offset: 0x0033343D
		public void setFromTableList(TFromTableList ftl)
		{
			this.fromTableList = ftl;
		}

		// Token: 0x06002268 RID: 8808 RVA: 0x00335246 File Offset: 0x00333446
		public void setWhereCondition(TWhereClause wc)
		{
			this.whereCondition = wc;
		}

		// Token: 0x06002269 RID: 8809 RVA: 0x0033524F File Offset: 0x0033344F
		public void setGroupByClause(TGroupBy gb)
		{
			this.groupByClause = gb;
		}

		// Token: 0x0600226A RID: 8810 RVA: 0x00335258 File Offset: 0x00333458
		public void setIntoClause(TIntoClause ic)
		{
			this.intoClause = ic;
		}

		// Token: 0x0600226B RID: 8811 RVA: 0x00335261 File Offset: 0x00333461
		public void setResultColumnList(TResultColumnList rcl)
		{
			this.resultColumnList = rcl;
		}

		// Token: 0x0600226C RID: 8812 RVA: 0x0033526A File Offset: 0x0033346A
		public void setSelectDistinct(TSelectDistinct sd)
		{
			this.SelectDistinct = sd;
		}

		// Token: 0x0600226D RID: 8813 RVA: 0x00335273 File Offset: 0x00333473
		public void setSelectToken(TSourceToken st)
		{
			this.selectToken = st;
		}

		// Token: 0x0600226E RID: 8814 RVA: 0x0033527C File Offset: 0x0033347C
		public void setSetOperator(int so)
		{
			this.SetOperator = so;
		}

		// Token: 0x0600226F RID: 8815 RVA: 0x00335285 File Offset: 0x00333485
		public void setValueClause(TValueClause vc)
		{
			this.valueClause = vc;
		}

		// Token: 0x06002270 RID: 8816 RVA: 0x0033528E File Offset: 0x0033348E
		public void setForupdateClause(TForUpdate fu)
		{
			this.forupdateClause = fu;
		}

		// Token: 0x06002271 RID: 8817 RVA: 0x00335297 File Offset: 0x00333497
		public void setOrderbyClause(TOrderBy ob)
		{
			this.orderbyClause = ob;
		}

		// Token: 0x06002272 RID: 8818 RVA: 0x003352A0 File Offset: 0x003334A0
		public void setIsolationClause(TIsolationClause ic)
		{
			this.isolationClause = ic;
		}

		// Token: 0x06002273 RID: 8819 RVA: 0x003352A9 File Offset: 0x003334A9
		public void setOptimizeForClause(TOptimizeForClause ofc)
		{
			this.optimizeForClause = ofc;
		}

		// Token: 0x06002274 RID: 8820 RVA: 0x003352B2 File Offset: 0x003334B2
		public void setFetchFirstClause(TFetchFirstClause ffc)
		{
			this.fetchFirstClause = ffc;
		}

		// Token: 0x1700070D RID: 1805
		// (get) Token: 0x06002275 RID: 8821 RVA: 0x003352BB File Offset: 0x003334BB
		// (set) Token: 0x06002276 RID: 8822 RVA: 0x003352C3 File Offset: 0x003334C3
		public virtual int ParenthesisCount
		{
			get
			{
				return this.parenthesisCount;
			}
			set
			{
				this.parenthesisCount = value;
			}
		}

		// Token: 0x06002277 RID: 8823 RVA: 0x003352CC File Offset: 0x003334CC
		public virtual void incParenthesisCount()
		{
			this.parenthesisCount++;
		}

		// Token: 0x06002278 RID: 8824 RVA: 0x003352DC File Offset: 0x003334DC
		public virtual void setParenthissisCountBeforeOrder()
		{
			this.parenthissisCountBeforeOrder = this.parenthesisCount;
			this.parenthesisCount = 0;
		}

		// Token: 0x1700070E RID: 1806
		// (get) Token: 0x06002279 RID: 8825 RVA: 0x003352F1 File Offset: 0x003334F1
		public virtual int ParenthissisCountBeforeOrder
		{
			get
			{
				return this.parenthissisCountBeforeOrder;
			}
		}

		// Token: 0x1700070F RID: 1807
		// (get) Token: 0x0600227B RID: 8827 RVA: 0x00335302 File Offset: 0x00333502
		// (set) Token: 0x0600227A RID: 8826 RVA: 0x003352F9 File Offset: 0x003334F9
		public virtual TOffsetClause OffsetClause
		{
			get
			{
				return this.offsetClause;
			}
			set
			{
				this.offsetClause = value;
			}
		}

		// Token: 0x17000710 RID: 1808
		// (get) Token: 0x0600227D RID: 8829 RVA: 0x00335313 File Offset: 0x00333513
		// (set) Token: 0x0600227C RID: 8828 RVA: 0x0033530A File Offset: 0x0033350A
		public virtual TOptionClause OptionClause
		{
			get
			{
				return this.optionClause;
			}
			set
			{
				this.optionClause = value;
			}
		}

		// Token: 0x17000711 RID: 1809
		// (get) Token: 0x0600227F RID: 8831 RVA: 0x00335324 File Offset: 0x00333524
		// (set) Token: 0x0600227E RID: 8830 RVA: 0x0033531B File Offset: 0x0033351B
		public virtual THiveLateralView LateralView
		{
			get
			{
				return this.lateralView;
			}
			set
			{
				this.lateralView = value;
			}
		}

		// Token: 0x17000712 RID: 1810
		// (get) Token: 0x06002281 RID: 8833 RVA: 0x00335335 File Offset: 0x00333535
		// (set) Token: 0x06002280 RID: 8832 RVA: 0x0033532C File Offset: 0x0033352C
		public virtual THiveSortBy SortBy
		{
			get
			{
				return this.sortBy;
			}
			set
			{
				this.sortBy = value;
			}
		}

		// Token: 0x17000713 RID: 1811
		// (get) Token: 0x06002283 RID: 8835 RVA: 0x00335346 File Offset: 0x00333546
		// (set) Token: 0x06002282 RID: 8834 RVA: 0x0033533D File Offset: 0x0033353D
		public virtual THiveDistributeBy DistributeBy
		{
			get
			{
				return this.distributeBy;
			}
			set
			{
				this.distributeBy = value;
			}
		}

		// Token: 0x17000714 RID: 1812
		// (get) Token: 0x06002285 RID: 8837 RVA: 0x00335357 File Offset: 0x00333557
		// (set) Token: 0x06002284 RID: 8836 RVA: 0x0033534E File Offset: 0x0033354E
		public virtual THiveClusterBy HiveClusterBy
		{
			get
			{
				return this.hiveClusterBy;
			}
			set
			{
				this.hiveClusterBy = value;
			}
		}

		// Token: 0x17000715 RID: 1813
		// (get) Token: 0x06002286 RID: 8838 RVA: 0x0033535F File Offset: 0x0033355F
		// (set) Token: 0x06002287 RID: 8839 RVA: 0x00335367 File Offset: 0x00333567
		public virtual THiveTransformClause TransformClause
		{
			get
			{
				return this.transformClause;
			}
			set
			{
				this.transformClause = value;
			}
		}

		// Token: 0x17000716 RID: 1814
		// (get) Token: 0x06002289 RID: 8841 RVA: 0x00335379 File Offset: 0x00333579
		// (set) Token: 0x06002288 RID: 8840 RVA: 0x00335370 File Offset: 0x00333570
		public virtual THiveHintClause HiveHintClause
		{
			get
			{
				return this.hiveHintClause;
			}
			set
			{
				this.hiveHintClause = value;
			}
		}

		// Token: 0x17000717 RID: 1815
		// (get) Token: 0x0600228B RID: 8843 RVA: 0x0033538A File Offset: 0x0033358A
		// (set) Token: 0x0600228A RID: 8842 RVA: 0x00335381 File Offset: 0x00333581
		public virtual TIntoTableClause IntoTableClause
		{
			get
			{
				return this.intoTableClause;
			}
			set
			{
				this.intoTableClause = value;
			}
		}

		// Token: 0x17000718 RID: 1816
		// (get) Token: 0x0600228D RID: 8845 RVA: 0x0033539B File Offset: 0x0033359B
		// (set) Token: 0x0600228C RID: 8844 RVA: 0x00335392 File Offset: 0x00333592
		public virtual TSourceToken SelectToken
		{
			get
			{
				return this.selectToken;
			}
			set
			{
				this.selectToken = value;
			}
		}

		// Token: 0x17000719 RID: 1817
		// (get) Token: 0x0600228E RID: 8846 RVA: 0x003353A3 File Offset: 0x003335A3
		// (set) Token: 0x0600228F RID: 8847 RVA: 0x003353AB File Offset: 0x003335AB
		public virtual TSelectDistinct SelectDistinct
		{
			get
			{
				return this.selectDistinct;
			}
			set
			{
				this.selectDistinct = value;
			}
		}

		// Token: 0x1700071A RID: 1818
		// (get) Token: 0x06002291 RID: 8849 RVA: 0x003353BD File Offset: 0x003335BD
		// (set) Token: 0x06002290 RID: 8848 RVA: 0x003353B4 File Offset: 0x003335B4
		public virtual TTopClause TopClause
		{
			get
			{
				return this.topClause;
			}
			set
			{
				this.topClause = value;
			}
		}

		// Token: 0x1700071B RID: 1819
		// (get) Token: 0x06002293 RID: 8851 RVA: 0x003353CE File Offset: 0x003335CE
		// (set) Token: 0x06002292 RID: 8850 RVA: 0x003353C5 File Offset: 0x003335C5
		public virtual TComputeClause ComputeClause
		{
			get
			{
				return this.computeClause;
			}
			set
			{
				this.computeClause = value;
			}
		}

		// Token: 0x1700071C RID: 1820
		// (get) Token: 0x06002294 RID: 8852 RVA: 0x003353D6 File Offset: 0x003335D6
		// (set) Token: 0x06002295 RID: 8853 RVA: 0x003353DE File Offset: 0x003335DE
		public virtual TResultColumnList ResultColumnList
		{
			get
			{
				return this.resultColumnList;
			}
			set
			{
				this.resultColumnList = value;
			}
		}

		// Token: 0x1700071D RID: 1821
		// (get) Token: 0x06002296 RID: 8854 RVA: 0x003353E7 File Offset: 0x003335E7
		// (set) Token: 0x06002297 RID: 8855 RVA: 0x003353EF File Offset: 0x003335EF
		public virtual TFromTableList FromTableList
		{
			get
			{
				return this.fromTableList;
			}
			set
			{
				this.fromTableList = value;
			}
		}

		// Token: 0x1700071E RID: 1822
		// (get) Token: 0x06002298 RID: 8856 RVA: 0x003353F8 File Offset: 0x003335F8
		// (set) Token: 0x06002299 RID: 8857 RVA: 0x00335400 File Offset: 0x00333600
		public virtual TWhereClause WhereCondition
		{
			get
			{
				return this.whereCondition;
			}
			set
			{
				this.whereCondition = value;
			}
		}

		// Token: 0x1700071F RID: 1823
		// (get) Token: 0x0600229A RID: 8858 RVA: 0x00335409 File Offset: 0x00333609
		// (set) Token: 0x0600229B RID: 8859 RVA: 0x00335411 File Offset: 0x00333611
		public virtual int SetOperator
		{
			get
			{
				return this.setOperator;
			}
			set
			{
				this.setOperator = value;
			}
		}

		// Token: 0x17000720 RID: 1824
		// (get) Token: 0x0600229C RID: 8860 RVA: 0x0033541A File Offset: 0x0033361A
		public virtual TSelectSqlNode LeftNode
		{
			get
			{
				return this.leftNode;
			}
		}

		// Token: 0x17000721 RID: 1825
		// (get) Token: 0x0600229D RID: 8861 RVA: 0x00335422 File Offset: 0x00333622
		public virtual TSelectSqlNode RightNode
		{
			get
			{
				return this.rightNode;
			}
		}

		// Token: 0x0600229E RID: 8862 RVA: 0x0033542A File Offset: 0x0033362A
		public override void init(object arg1, object arg2)
		{
			this.leftNode = (TSelectSqlNode)arg1;
			this.rightNode = (TSelectSqlNode)arg2;
		}

		// Token: 0x17000722 RID: 1826
		// (get) Token: 0x0600229F RID: 8863 RVA: 0x00335444 File Offset: 0x00333644
		public virtual bool CombinedQuery
		{
			get
			{
				return this.setOperator > 0;
			}
		}

		// Token: 0x17000723 RID: 1827
		// (get) Token: 0x060022A0 RID: 8864 RVA: 0x0033544F File Offset: 0x0033364F
		// (set) Token: 0x060022A1 RID: 8865 RVA: 0x00335457 File Offset: 0x00333657
		public virtual TOrderBy OrderbyClause
		{
			get
			{
				return this.orderbyClause;
			}
			set
			{
				this.orderbyClause = value;
			}
		}

		// Token: 0x17000724 RID: 1828
		// (get) Token: 0x060022A2 RID: 8866 RVA: 0x00335460 File Offset: 0x00333660
		// (set) Token: 0x060022A3 RID: 8867 RVA: 0x00335468 File Offset: 0x00333668
		public virtual TForUpdate ForupdateClause
		{
			get
			{
				return this.forupdateClause;
			}
			set
			{
				this.forupdateClause = value;
			}
		}

		// Token: 0x17000725 RID: 1829
		// (get) Token: 0x060022A4 RID: 8868 RVA: 0x00335471 File Offset: 0x00333671
		// (set) Token: 0x060022A5 RID: 8869 RVA: 0x00335479 File Offset: 0x00333679
		public virtual THierarchical HierarchicalClause
		{
			get
			{
				return this.hierarchicalClause;
			}
			set
			{
				this.hierarchicalClause = value;
			}
		}

		// Token: 0x17000726 RID: 1830
		// (get) Token: 0x060022A6 RID: 8870 RVA: 0x00335482 File Offset: 0x00333682
		// (set) Token: 0x060022A7 RID: 8871 RVA: 0x0033548A File Offset: 0x0033368A
		public virtual TGroupBy GroupByClause
		{
			get
			{
				return this.groupByClause;
			}
			set
			{
				this.groupByClause = value;
			}
		}

		// Token: 0x17000727 RID: 1831
		// (get) Token: 0x060022A9 RID: 8873 RVA: 0x0033549C File Offset: 0x0033369C
		// (set) Token: 0x060022A8 RID: 8872 RVA: 0x00335493 File Offset: 0x00333693
		public virtual TIntoClause IntoClause
		{
			get
			{
				return this.intoClause;
			}
			set
			{
				this.intoClause = value;
			}
		}

		// Token: 0x17000728 RID: 1832
		// (get) Token: 0x060022AB RID: 8875 RVA: 0x003354AD File Offset: 0x003336AD
		// (set) Token: 0x060022AA RID: 8874 RVA: 0x003354A4 File Offset: 0x003336A4
		public virtual TQualifyClause QualifyClause
		{
			get
			{
				return this.qualifyClause;
			}
			set
			{
				this.qualifyClause = value;
			}
		}

		// Token: 0x17000729 RID: 1833
		// (get) Token: 0x060022AD RID: 8877 RVA: 0x003354BE File Offset: 0x003336BE
		// (set) Token: 0x060022AC RID: 8876 RVA: 0x003354B5 File Offset: 0x003336B5
		public virtual TSampleClause SampleClause
		{
			get
			{
				return this.sampleClause;
			}
			set
			{
				this.sampleClause = value;
			}
		}

		// Token: 0x1700072A RID: 1834
		// (get) Token: 0x060022AE RID: 8878 RVA: 0x003354C6 File Offset: 0x003336C6
		// (set) Token: 0x060022AF RID: 8879 RVA: 0x003354CE File Offset: 0x003336CE
		public virtual TTeradataWithClause WithClause
		{
			get
			{
				return this.withClause;
			}
			set
			{
				this.withClause = value;
			}
		}

		// Token: 0x1700072B RID: 1835
		// (get) Token: 0x060022B1 RID: 8881 RVA: 0x003354E0 File Offset: 0x003336E0
		// (set) Token: 0x060022B0 RID: 8880 RVA: 0x003354D7 File Offset: 0x003336D7
		public virtual TLimitClause LimitClause
		{
			get
			{
				return this.limitClause;
			}
			set
			{
				this.limitClause = value;
			}
		}

		// Token: 0x1700072C RID: 1836
		// (get) Token: 0x060022B3 RID: 8883 RVA: 0x003354F1 File Offset: 0x003336F1
		// (set) Token: 0x060022B2 RID: 8882 RVA: 0x003354E8 File Offset: 0x003336E8
		public virtual TFetchFirstClause FetchFirstClause
		{
			get
			{
				return this.fetchFirstClause;
			}
			set
			{
				this.fetchFirstClause = value;
			}
		}

		// Token: 0x1700072D RID: 1837
		// (get) Token: 0x060022B5 RID: 8885 RVA: 0x00335502 File Offset: 0x00333702
		// (set) Token: 0x060022B4 RID: 8884 RVA: 0x003354F9 File Offset: 0x003336F9
		public virtual TOptimizeForClause OptimizeForClause
		{
			get
			{
				return this.optimizeForClause;
			}
			set
			{
				this.optimizeForClause = value;
			}
		}

		// Token: 0x1700072E RID: 1838
		// (get) Token: 0x060022B7 RID: 8887 RVA: 0x00335513 File Offset: 0x00333713
		// (set) Token: 0x060022B6 RID: 8886 RVA: 0x0033550A File Offset: 0x0033370A
		public virtual TIsolationClause IsolationClause
		{
			get
			{
				return this.isolationClause;
			}
			set
			{
				this.isolationClause = value;
			}
		}

		// Token: 0x1700072F RID: 1839
		// (get) Token: 0x060022B9 RID: 8889 RVA: 0x0033553C File Offset: 0x0033373C
		// (set) Token: 0x060022B8 RID: 8888 RVA: 0x0033551B File Offset: 0x0033371B
		public virtual TValueClause ValueClause
		{
			get
			{
				return this.valueClause;
			}
			set
			{
				this.valueClause = value;
				base.startToken = value.startToken;
				base.endToken = value.endToken;
			}
		}

		// Token: 0x17000730 RID: 1840
		// (get) Token: 0x060022BA RID: 8890 RVA: 0x00335544 File Offset: 0x00333744
		// (set) Token: 0x060022BB RID: 8891 RVA: 0x0033554C File Offset: 0x0033374C
		public virtual List<TLockingClause> LockingClauses
		{
			get
			{
				return this.lockingClauses;
			}
			set
			{
				this.lockingClauses = value;
			}
		}

		// Token: 0x17000731 RID: 1841
		// (get) Token: 0x060022BD RID: 8893 RVA: 0x0033555E File Offset: 0x0033375E
		// (set) Token: 0x060022BC RID: 8892 RVA: 0x00335555 File Offset: 0x00333755
		public virtual TWindowClause WindowClause
		{
			get
			{
				return this.windowClause;
			}
			set
			{
				this.windowClause = value;
			}
		}

		// Token: 0x17000732 RID: 1842
		// (get) Token: 0x060022BE RID: 8894 RVA: 0x00335566 File Offset: 0x00333766
		// (set) Token: 0x060022BF RID: 8895 RVA: 0x0033556E File Offset: 0x0033376E
		public virtual TExpandOnClause ExpandOnClause
		{
			get
			{
				return this.expandOnClause;
			}
			set
			{
				this.expandOnClause = value;
			}
		}

		// Token: 0x04001AEA RID: 6890
		private int parenthesisCount;

		// Token: 0x04001AEB RID: 6891
		private int parenthissisCountBeforeOrder;

		// Token: 0x04001AEC RID: 6892
		private TOffsetClause offsetClause;

		// Token: 0x04001AED RID: 6893
		private TOptionClause optionClause;

		// Token: 0x04001AEE RID: 6894
		private THiveLateralView lateralView;

		// Token: 0x04001AEF RID: 6895
		private THiveSortBy sortBy;

		// Token: 0x04001AF0 RID: 6896
		private THiveDistributeBy distributeBy;

		// Token: 0x04001AF1 RID: 6897
		private THiveClusterBy hiveClusterBy;

		// Token: 0x04001AF2 RID: 6898
		private THiveTransformClause transformClause;

		// Token: 0x04001AF3 RID: 6899
		private THiveHintClause hiveHintClause;

		// Token: 0x04001AF4 RID: 6900
		private TIntoTableClause intoTableClause;

		// Token: 0x04001AF5 RID: 6901
		private TSourceToken selectToken;

		// Token: 0x04001AF6 RID: 6902
		private TResultColumnList resultColumnList;

		// Token: 0x04001AF7 RID: 6903
		private TSelectDistinct selectDistinct;

		// Token: 0x04001AF8 RID: 6904
		private TTopClause topClause;

		// Token: 0x04001AF9 RID: 6905
		private TComputeClause computeClause;

		// Token: 0x04001AFA RID: 6906
		private TFromTableList fromTableList;

		// Token: 0x04001AFB RID: 6907
		private TWhereClause whereCondition;

		// Token: 0x04001AFC RID: 6908
		private TSelectSqlNode leftNode;

		// Token: 0x04001AFD RID: 6909
		private TSelectSqlNode rightNode;

		// Token: 0x04001AFE RID: 6910
		public TCTEList cteList;

		// Token: 0x04001AFF RID: 6911
		private int setOperator;

		// Token: 0x04001B00 RID: 6912
		private TOrderBy orderbyClause;

		// Token: 0x04001B01 RID: 6913
		private TForUpdate forupdateClause;

		// Token: 0x04001B02 RID: 6914
		private THierarchical hierarchicalClause;

		// Token: 0x04001B03 RID: 6915
		private TGroupBy groupByClause;

		// Token: 0x04001B04 RID: 6916
		private TIntoClause intoClause;

		// Token: 0x04001B05 RID: 6917
		private TQualifyClause qualifyClause;

		// Token: 0x04001B06 RID: 6918
		private TSampleClause sampleClause;

		// Token: 0x04001B07 RID: 6919
		private TTeradataWithClause withClause;

		// Token: 0x04001B08 RID: 6920
		private TLimitClause limitClause;

		// Token: 0x04001B09 RID: 6921
		private TFetchFirstClause fetchFirstClause;

		// Token: 0x04001B0A RID: 6922
		private TOptimizeForClause optimizeForClause;

		// Token: 0x04001B0B RID: 6923
		private TIsolationClause isolationClause;

		// Token: 0x04001B0C RID: 6924
		private TValueClause valueClause;

		// Token: 0x04001B0D RID: 6925
		private List<TLockingClause> lockingClauses;

		// Token: 0x04001B0E RID: 6926
		private TWindowClause windowClause;

		// Token: 0x04001B0F RID: 6927
		private TExpandOnClause expandOnClause;
	}
}
